﻿Imports Microsoft.VisualBasic
Imports ADOEntityKYC
Public Class clsCheckID
    Private blnStatusComplete As Boolean
    Dim strMsg As String = ""
    Dim strError As String = ""
    Dim clsCheckLanguage As New clsCheckLanguage

    Public ReadOnly Property chkStatusComplete() As Boolean
        Get
            Return blnStatusComplete
        End Get
    End Property

    Public ReadOnly Property Msg() As String
        Get
            Return strMsg
        End Get
    End Property

    Public Function chkIDcard(ByVal strIDCard As String) As Boolean
        Dim Sum, Count As Integer
        blnStatusComplete = True

        If (chkDataIdCard(strIDCard)) Then
            Sum = 0

            'หาผลรวมตั้งแต่หลักที่ 1 ไปจนถึงหลักที่ 12
            For Count = 1 To 12
               Sum = Sum + Val(Mid(strIDCard, Count, 1)) * (14 - Count) 
            Next
            'เปรียบเทียบค่าที่ได้กับหลักที่(13)
            If Microsoft.VisualBasic.Right(strIDCard, 1) = Microsoft.VisualBasic.Right(Str(11 - (Sum Mod 11)), 1) Then
                'strMsg = "หมายเลขบัตรประชาชน " & strIDCard & " ถูกต้อง."
                blnStatusComplete = True
            Else
                strMsg = "หมายเลขบัตรประชาชน " & strIDCard & " ไม่ถูกต้อง."
                blnStatusComplete = False
            End If
        Else
            blnStatusComplete = False
        End If
        Return blnStatusComplete
    End Function

    Private Function chkDataIdCard(ByVal strIDCard As String) As Boolean
        ' Dim chkInteger As Double = 0
        Dim blnChk As Boolean = True

        'ไม่มีการป้อนข้อมูล(ก็ให้ออกจากโปรแกรมย่อยไปเหอะ)
        If strIDCard = "" Or Len(strIDCard) = 0 Then
            blnChk = False
            strMsg = "กรุณากรอกหมายเลขบัตรประชาชน."
        Else
            If Len(strIDCard) < 13 Then
                strMsg = "กรอกหมายเลขบัตรประชาชนไม่ครบทั้ง 13 ."
                blnChk = False
            Else
                For Count = 1 To 12
                    If Not (clsCheckLanguage.checkNumber(strIDCard)) Then
                        strMsg = "กรอกหมายเลขบัตรประชาชนเป็นตัวเลขเท่านั้น. "
                        blnChk = False
                    End If 
                Next
            End If
           
           
        End If
        'ความยาวต้องเท่ากับ 13 หลัก
        clsCheckLanguage = Nothing
        Return blnChk
    End Function

    Public Function checkUniqueID1(ByVal UniqueID As String, ByVal TypeKYC As String, ByVal custSEQ As String) As Boolean
        Dim result As Boolean = True
        Dim KYCEntity As KYCEntities = New KYCEntities
        Dim qryCust = (From cust In KYCEntity.MCUSTOMER
               Where cust.UNIQUEID = UniqueID And cust.CUSTTYPE = 1
               Select cust).ToList
        If qryCust.Count = 0 Then
            result = True
        Else
            If TypeKYC = 1 Then
                result = False
            ElseIf Not qryCust(0).CUSTSEQ = custSEQ Then
                result = False
            End If
        End If
        qryCust = Nothing
        Return result

    End Function


    Public Function checkUniqueID2(ByVal UniqueID As String, ByVal TypeKYC As String, ByVal custSEQ As String) As Boolean
        Dim result As Boolean = True
        Dim KYCEntity As KYCEntities = New KYCEntities
        Dim qryCust = (From cust In KYCEntity.MCUSTOMER
               Where cust.UNIQUEID = UniqueID And cust.CUSTTYPE = 2
               Select cust).ToList
        If qryCust.Count = 0 Then
            result = True
        Else
            If TypeKYC = 1 Then
                result = False
            ElseIf Not qryCust(0).CUSTSEQ = custSEQ Then
                result = False
            End If
        End If
        qryCust = Nothing
        Return result

    End Function

End Class
